Application recommendation using stored files

ABSTRACT

The disclosed technology can enable files to be stored with a networked environment. The files can be associated with information (e.g., properties) such as a file name, a file type, a date/time at which a respective file was last accessed, a number of times a respective file was accessed, data representing the contents of a respective file, and other information. Based at least in part on analyzing the information, the disclosed technology can select or identify a file and/or a file property (e.g., a file type) that the disclosed technology predicts to be most relevant to the user. The disclosed technology can then recommend applications based at least in part on the selected or identified file and/or file property (e.g., file type).

CROSS-REFERENCE TO RELATED APPLICATIONS

The present patent application is a continuation of and claims thebenefit of U.S. Non-Provisional application Ser. No. 13/730,268 filedDec. 28, 2012. Said application is expressly incorporated herein byreference in its entirety.

TECHNICAL FIELD

The present technology pertains to making recommendations to users orcustomers of content for the users to acquire or purchase, and morespecifically pertains to recommending content items such as softwareapplications using information associated with stored files of users. Insome embodiments the technology is applied to a shared and synchronizedcontent management system having a plurality of user accounts forstoring content such as files remotely at a central location such as theCloud or Internet.

BACKGROUND

Software applications (also known as simply “applications” or “apps”)are becoming ubiquitous in all aspects of modern life. People useapplications on their computing devices every day as mobile applicationsare growing in number and in function. For example, some users haveapplications to add photographic effects to the pictures they take. Someusers have mobile apps to write, edit, and view documents whiletraveling on business. Other apps allow multiple users to communicatewith one another. There are also gaming apps for users who like to playcomputer games on their computing devices. In fact, many computingdevice platforms have application marketplaces that provide applicationsfor a wide variety of purposes. Users can access the applicationmarketplaces to download, install, and use various apps.

With the increasingly large number of app choices, it can be difficultto determine which apps may be relevant and of interest to a particularuser. In some cases, even the user may not know which apps are relevantor of interest to him/her. Determining which apps to present to the usercan often be an inaccurate or imprecise task. Presenting apps of littleor no interest to the user can be inefficient in terms of utilizingcomputing resources and can also reduce the overall satisfaction of theuser experience associated with acquiring and using apps.

SUMMARY

Features and advantages of the disclosure will be set forth in thedescription which follows, and in part will be obvious from thedescription, or can be learned by practice of the herein disclosedprinciples. The features and advantages of the disclosure can berealized and obtained by means of the instruments and combinationsparticularly pointed out hereinafter. These and other features of thedisclosure will become more fully apparent from the followingdescription and accompanying drawings, or can be learned by the practiceof the principles set forth herein.

Disclosed are systems, methods, and non-transitory computer-readablestorage media for application recommendation using files stored with anetworked storage environment. Various embodiments of the presentdisclosure enable files to be stored with the networked environment. Thefiles can be associated with a user of the networked environment. Forexample, the user can create an account with the networked environment,log into his/her account using a computing device, and upload files tobe stored with the networked environment under his/her account. Thefiles stored on the networked environment can be synced with anycomputing device that is logged into the user's account, independent ofthe platform (e.g., operating system) of the computing device. Thesyncing of the stored files can also enable any modification to thefiles made with one device to be reflected on other devices when theother devices access the files. Moreover, the user can also access filesshared by another user(s).

Each of the stored files can be associated with information (e.g., fileproperties) such as a file name, a file type (i.e., a file format), adate and time the respective file was last accessed (e.g., uploaded,modified, opened, etc.), a number of times the respective file wasaccessed, data representing contents of the respective file, etc. Insome embodiments, systems, methods, and non-transitory computer-readablestorage media of the present disclosure can analyze the informationassociated with the stored files to predict which of the stored files ismost relevant (i.e., is of the highest interest) and/or most likely tobe relevant to the user. For example, a system consistent with thepresent disclosure can be configured to assume that the last (i.e., mostrecently) accessed file is most likely to be relevant to the user. Inanother example, the system can decide that the file that has beenaccessed the most number of times is likely to be the most relevant tothe user. In each of these examples, the system can identify or selectthe most relevant file(s) and make recommendations to the user forapplications based on information associate with the identified/selectedfile(s). For example, if the system identifies or selects an image fileas being relevant to the user, then the system can recommendapplications to the user that are related to images, such as imageediting apps.

In some embodiments, the information associated with the user's storedfiles can be analyzed in attempt to predict which file property(ies)(e.g., file type(s)) associated with the stored files, are most relevantto the user. For example, the system can decide that the most commonfile type among the stored files is likely to be the most relevant(and/or most likely to be relevant) to the user. In one example, if 90%of the files stored with an account of a user are MP3 files, then thesystem can predict that the MP3 file type is the most relevant to theuser. The system can identify or select the MP3 file type as the filetype for which applications are to be recommended. As such, in thisexample, the system can recommend MP3 playing apps, MP3 editing apps,and other apps relating to the MP3 file type.

In other embodiments, information pertaining to the composition orprofile of stored files of user accounts can be associated with theapplications that prior users have chosen to acquire and stored in adatabase. Consequently, a stored file profile can be generated for aparticular user and compared with similar profiles in the database toobtain application recommendations to send to the user.

Accordingly, various embodiments of the present disclosure can usestored files (i.e., including information associated with the storedfiles) to determine which applications to recommend to particular users.

BRIEF DESCRIPTION OF THE DRAWINGS

The above-recited and other advantages and features of the disclosurewill become apparent by reference to specific embodiments thereof whichare illustrated in the appended drawings. Understanding that thesedrawings depict only exemplary embodiments of the disclosure and are nottherefore limiting of its scope, the principles herein are described andexplained with additional specificity and detail through the use of theaccompanying drawings in which:

FIG. 1 shows an exemplary configuration of devices and a network inaccordance with the invention;

FIG. 2 shows an exemplary webpage for storing files in a networkedenvironment;

FIG. 3 shows an exemplary interface for application recommendation usingfiles stored in a networked environment;

FIG. 4 shows an exemplary webpage for storing files in a networkedenvironment;

FIG. 5 shows an exemplary interface for application recommendation usingfiles stored in a networked environment;

FIG. 6 shows an exemplary webpage for providing access to applicationsrecommended using files stored in a networked environment;

FIG. 7A shows a screenshot of an exemplary device embodiment foraccessing files stored in a networked environment;

FIG. 7B shows a screenshot of an exemplary device embodiment foraccessing files stored in a networked environment;

FIG. 7C shows a screenshot of an exemplary device embodiment forproviding access to applications recommended using files stored in anetworked environment;

FIG. 8 shows an exemplary method embodiment for applicationrecommendation using stored files;

FIG. 9 shows an exemplary method embodiment for applicationrecommendation using stored files;

FIG. 10A shows an exemplary possible system embodiment for applicationrecommendation using stored files; and

FIG. 10B shows an exemplary possible system embodiment for applicationrecommendation using stored files.

DESCRIPTION

Various embodiments of the disclosure are discussed in detail below.While specific implementations are discussed, it should be understoodthat this is done for illustration purposes only. A person skilled inthe relevant art will recognize that other components and configurationsmay be used without parting from the spirit and scope of the disclosure.

The disclosed technology addresses the need in the art for applicationrecommendation using files stored with a networked environment. Thedisclosed technology can enable files to be stored with the networkedenvironment. The files can be associated with information (e.g.,properties) such as a file name, a file type, a date/time at which arespective file was last accessed, a number of times a respective filewas accessed, data representing the contents of a respective file, andother information. Based at least in part on analyzing the information,the disclosed technology can select or identify a file and/or a fileproperty (e.g., a file type) that the disclosed technology predicts tobe most relevant to the user. The disclosed technology can thenrecommend applications based at least in part on the selected oridentified file and/or file property (e.g., file type).

An exemplary system configuration 100 is shown in FIG. 1, whereinelectronic devices communicate via a network for purposes of exchangingcontent and other data. The system can be configured for use on a widearea network such as that illustrated in FIG. 1. However, the presentprinciples are applicable to a wide variety of network configurationsthat facilitate the intercommunication of electronic devices. Forexample, each of the components of system 100 in FIG. 1 can beimplemented in a localized or distributed fashion in a network.

In system 100, a user can interact with content management system 106through client devices 102 ₁, 102 ₂, . . . , 102 _(n) (collectively“102”) connected to network 104 by direct and/or indirect communication.Content management system 106 can support connections from a variety ofdifferent client devices, such as desktop computers; mobile computers;mobile communications devices, e.g. mobile phones, smart phones,tablets; smart televisions; set-top boxes; and/or any other networkenabled computing devices. Client devices 102 can be of varying type,capabilities, operating systems, etc. Furthermore, content managementsystem 106 can concurrently accept connections from and interact withmultiple client devices 102.

A user can interact with content management system 106 via a client-sideapplication installed on client device 102 _(i). In some embodiments,the client-side application can include a content management systemspecific component. For example, the component can be a stand-aloneapplication, one or more application plug-ins, and/or a browserextension. However, the user can also interact with content managementsystem 106 via a third-party application, such as a web browser, thatresides on client device 102 _(i) and is configured to communicate withcontent management system 106. In either case, the client-sideapplication can present a user interface (UI) for the user to interactwith content management system 106. For example, the user can interactwith the content management system 106 via a client-side applicationintegrated with the file system or via a webpage displayed using a webbrowser application.

Content management system 106 can make it possible for a user to storecontent, as well as perform a variety of content management tasks, suchas retrieve, modify, browse, and/or share the content. Furthermore,content management system 106 can make it possible for a user to accessthe content from multiple client devices 102. For example, client device102 _(i) can upload content to content management system 106 via network104. The content can later be retrieved from content management system106 using the same client device 102 _(i) or some other client device102.

To facilitate the various content management services, a user can createan account with content management system 106. The account informationcan be maintained in user account database 150. User account database150 can store profile information for registered users. In some cases,the only personal information in the user profile can be a usernameand/or email address. However, content management system 106 can also beconfigured to accept additional user information.

User account database 150 can also include account managementinformation, such as account type, e.g. free or paid; usage information,e.g. file edit history; maximum storage space authorized; storage spaceused; content storage locations; security settings; personalconfiguration settings; content sharing data; etc. Account managementmodule 124 can be configured to update and/or obtain user accountdetails in user account database 150. The account management module 124can be configured to interact with any number of other modules incontent management system 106.

An account can be used to store content, such as documents, text files,audio files, video files, etc., from one or more client devices 102authorized on the account. The content can also include folders ofvarious types with different behaviors, or other mechanisms of groupingcontent items together. For example, an account can include a publicfolder that is accessible to any user. The public folder can be assigneda web-accessible address. A link to the web-accessible address can beused to access the contents of the public folder. In another example, anaccount can include a photos folder that is intended for photos and thatprovides specific attributes and actions tailored for photos; an audiofolder that provides the ability to play back audio files and performother audio related actions; or other special purpose folders. Anaccount can also include shared folders or group folders that are linkedwith and available to multiple user accounts. The permissions formultiple users may be different for a shared folder.

The content can be stored in content storage 160. Content storage 160can be a storage device, multiple storage devices, or a server.Alternatively, content storage 160 can be a cloud storage provider ornetwork storage accessible via one or more communications networks.Content management system 106 can hide the complexity and details fromclient devices 102 so that client devices 102 do not need to knowexactly where the content items are being stored by content managementsystem 106. In one variation, content management system 106 can storethe content items in the same folder hierarchy as they appear on clientdevice 102 _(i). However, content management system 106 can store thecontent items in its own order, arrangement, or hierarchy. Contentmanagement system 106 can store the content items in a networkaccessible storage (SAN) device, in a redundant array of inexpensivedisks (RAID), etc. Content storage 160 can store content items using oneor more partition types, such as FAT, FAT32, NTFS, EXT2, EXT3, EXT4,ReiserFS, BTRFS, and so forth.

Content storage 160 can also store metadata describing content items,content item types, and the relationship of content items to variousaccounts, folders, or groups. The metadata for a content item can bestored as part of the content item or can be stored separately. In onevariation, each content item stored in content storage 160 can beassigned a system-wide unique identifier.

Content storage 160 can decrease the amount of storage space required byidentifying duplicate files or duplicate segments of files. Instead ofstoring multiple copies, content storage 160 can store a single copy andthen use a pointer or other mechanism to link the duplicates to thesingle copy. Similarly, content storage 160 can store files moreefficiently, as well as provide the ability to undo operations, by usinga file version control that tracks changes to files, different versionsof files (including diverging version trees), and a change history. Thechange history can include a set of changes that, when applied to theoriginal file version, produce the changed file version.

Content management system 106 can be configured to support automaticsynchronization of content from one or more client devices 102. Thesynchronization can be platform agnostic. That is, the content can besynchronized across multiple client devices 102 of varying type,capabilities, operating systems, etc. For example, client device 102_(i) can include client software, which synchronizes, via asynchronization module 132 at content management system 106, content inclient device 102 _(i)'s file system with the content in an associateduser account. In some cases, the client software can synchronize anychanges to content in a designated folder and its sub-folders, such asnew, deleted, modified, copied, or moved files or folders. The clientsoftware can be a separate software application, can integrate with anexisting content management application in the operating system, or somecombination thereof. In one example of client software that integrateswith an existing content management application, a user can manipulatecontent directly in a local folder, while a background process monitorsthe local folder for changes and synchronizes those changes to contentmanagement system 106. Conversely, the background process can identifycontent that has been updated at content management system 106 andsynchronize those changes to the local folder. The client software canprovide notifications of synchronization operations, and can provideindications of content statuses directly within the content managementapplication. Sometimes client device 102 _(i) may not have a networkconnection available. In this scenario, the client software can monitorthe linked folder for file changes and queue those changes for latersynchronization to content management system 106 when a networkconnection is available. Similarly, a user can manually stop or pausesynchronization with content management system 106.

A user can also view or manipulate content via a web interface generatedand served by user interface module 122. For example, the user cannavigate in a web browser to a web address provided by contentmanagement system 106. Changes or updates to content in the contentstorage 160 made through the web interface, such as uploading a newversion of a file, can be propagated back to other client devices 102associated with the user's account. For example, multiple client devices102, each with their own client software, can be associated with asingle account and files in the account can be synchronized between eachof the multiple client devices 102.

Content management system 106 can include a communications interface 120for interfacing with various client devices 102, and can interact withother content and/or service providers 109 ₁, 109 ₂, . . . , 109 _(n)(collectively “109”) via an Application Programming Interface (API).Certain software applications can access content storage 160 via an APIon behalf of a user. For example, a software package, such as an app ona smartphone or tablet computing device, can programmatically make callsdirectly to content management system 106, when a user providescredentials, to read, write, create, delete, share, or otherwisemanipulate content. Similarly, the API can allow users to access all orpart of content storage 160 through a web site.

Content management system 106 can also include authenticator module 126,which can verify user credentials, security tokens, API calls, specificclient devices, and so forth, to ensure only authorized clients andusers can access files. Further, content management system 106 caninclude analytics module 134 module that can track and report onaggregate file operations, user actions, network usage, total storagespace used, as well as other technology, usage, or business metrics. Aprivacy and/or security policy can prevent unauthorized access to userdata stored with content management system 106.

Content management system 106 can include sharing module 130 formanaging sharing content publicly or privately. Sharing content publiclycan include making the content item accessible from any computing devicein network communication with content management system 106. Sharingcontent privately can include linking a content item in content storage160 with two or more user accounts so that each user account has accessto the content item. The sharing can be performed in a platform agnosticmanner. That is, the content can be shared across multiple clientdevices 102 of varying type, capabilities, operating systems, etc. Thecontent can also be shared across varying types of user accounts.

In some embodiments, content management system 106 can be configured tomaintain a content directory identifying the location of each contentitem in content storage 160. The content directory can include a uniquecontent entry for each content item stored in the content storage.

A content entry can include a content path that can be used to identifythe location of the content item in a content management system. Forexample, the content path can include the name of the content item and afolder hierarchy associated with the content item. For example, thecontent path can include a folder or path of folders in which thecontent item is placed as well as the name of the content item. Contentmanagement system 106 can use the content path to present the contentitems in the appropriate folder hierarchy.

A content entry can also include a content pointer that identifies thelocation of the content item in content storage 160. For example, thecontent pointer can include the exact storage address of the contentitem in memory. In some embodiments, the content pointer can point tomultiple locations, each of which contains a portion of the contentitem.

In addition to a content path and content pointer, a content entry canalso include a user account identifier that identifies the user accountthat has access to the content item. In some embodiments, multiple useraccount identifiers can be associated with a single content entryindicating that the content item has shared access by the multiple useraccounts.

To share a content item privately, sharing module 130 can be configuredto add a user account identifier to the content entry associated withthe content item, thus granting the added user account access to thecontent item. Sharing module 130 can also be configured to remove useraccount identifiers from a content entry to restrict a user account'saccess to the content item.

To share content publicly, sharing module 130 can be configured togenerate a custom network address, such as a uniform resource locator(URL), which allows any web browser to access the content in contentmanagement system 106 without any authentication. To accomplish this,sharing module 130 can be configured to include content identificationdata in the generated URL, which can later be used to properly identifyand return the requested content item. For example, sharing module 130can be configured to include the user account identifier and the contentpath in the generated URL. Upon selection of the URL, the contentidentification data included in the URL can be transmitted to contentmanagement system 106 which can use the received content identificationdata to identify the appropriate content entry and return the contentitem associated with the content entry.

In addition to generating the URL, sharing module 130 can also beconfigured to record that a URL to the content item has been created. Insome embodiments, the content entry associated with a content item caninclude a URL flag indicating whether a URL to the content item has beencreated. For example, the URL flag can be a Boolean value initially setto 0 or false to indicate that a URL to the content item has not beencreated. Sharing module 130 can be configured to change the value of theflag to 1 or true after generating a URL to the content item.

In some embodiments, sharing module 130 can also be configured todeactivate a generated URL. For example, each content entry can alsoinclude a URL active flag indicating whether the content should bereturned in response to a request from the generated URL. For example,sharing module 130 can be configured to only return a content itemrequested by a generated link if the URL active flag is set to 1 ortrue. Thus, access to a content item for which a URL has been generatedcan be easily restricted by changing the value of the URL active flag.This allows a user to restrict access to the shared content item withouthaving to move the content item or delete the generated URL. Likewise,sharing module 130 can reactivate the URL by again changing the value ofthe URL active flag to 1 or true. A user can thus easily restore accessto the content item without the need to generate a new URL.

While content management system 106 is presented with specificcomponents, it should be understood by one skilled in the art, that thearchitectural configuration of system 106 is simply one possibleconfiguration and that other configurations with more or less componentsare also possible.

With reference now to FIG. 2, an exemplary webpage for storing files ina networked environment such as a shared content management system isshown. The exemplary webpage can provide folders and/or directories inwhich to store files (e.g., data). For example, a user of a computingdevice can access the content management system using the computingdevice and create an account with the content management system. Usingthe computing device, the user of the content management system canupload and/or save files in the content management system under his/heraccount. The files stored in the content management system can be syncedwith the user's account such that the files can be accessed from anydevice logged into the user's account, independent of the platform(e.g., operating system) of the device. The files can be synced suchthat when there is a modification and/or update to a file from onedevice, the modified/updated file can be updated to copies of filesstored on other devices as well.

The user's account can have a root directory, such as Storage 202, forstoring files in the networked environment. There can also be subfoldersand/or subdirectories under the root directory. For example, the user ofthe networked environment can create a folder called “Photos Folder” 204as a subdirectory of Storage 202. In this example, the user can havecreated Photos Folder 204 with the intention for Photos Folder 204 tostore the user's photographs. Within Photos Folder 204, there can beanother subfolder called “Family Vacation” 206. In this example, theuser can have created Family Vacation 206 with the intention for FamilyVacation 206 to store photographs related to a family trip of the user.

In the example of FIG. 2, Photos Folder 204 can include files, such asProfile Picture.jpg 208 and Funny Cat.gif 210, which can be images thathave been uploaded and stored in Photos Folder 204. Each of the filescan be associated with information including (but not limited to) name212, file type (i.e., file format) 21, and date/time at which the filewas most recently accessed 216 (e.g., when the file was uploaded, whenthe file was shared, when the file was opened/viewed/previewed, when thefile was selected/clicked-on, when the file was modified, etc.). Name212, file type 214, and last accessed date/time 216 shown in FIG. 2 arefor illustrative purposes only and are not always required. Although notshown in FIG. 2, each of the files can also be associated with otherinformation such as a file size, an author, a number of times a file hasbeen accessed, a number of times a file has been accessed within aspecified time period, etc.

The file type for Family Vacation 206 can be a folder. The file type forProfile Picture.jpg 208 can be an image, or more specifically, a JPGimage. For Funny Cat.gif 210, the file type can be an image, or morespecifically, a GIF image. Moreover, information associated with ProfilePicture.jpg 208 can show that Profile Picture.jpg 208 was last accessed(e.g., saved, uploaded, created, opened, shared, modified, etc.) 216 onNov. 30, 2012 at 5:03 PM. Also, Funny Cat.gif 210 can be associated withinformation that specifies that Funny Cat.gif 210 was most recentlyaccessed 216 on Nov. 29, 2012 at 1:10 PM.

In some embodiments, systems, methods, and non-transitorycomputer-readable storage media in accordance with the presentdisclosure can analyze information associated with the files stored inthe content management system to select (or identify) a file. In someembodiments, the selection (or identification) of the file can be basedon selection criteria (or identification criteria) that attempt topredict which of the stored files is most relevant to the user (i.e.,which of the files is probably the most relevant to the user as of now).For example, the information associated with the files can be analyzedin attempt to determine a file that has a highest likelihood of beingmost relevant to the user (as of the present time). Accordingly, theselection criteria can be configured to take into account theinformation associated with the files stored.

In some embodiments, systems, methods, and/or non-transitorycomputer-readable storage medium of the present disclosure can assumethat the most recently accessed file is likely to be most relevant tothe user. Accordingly, the selection of the file can be based on thelast accessed information associated with the files. In other words, thefile that is selected can be the file that was most recently accessed ascompared to the other files.

In some embodiments, the file that has been accessed the most can beassumed to be most relevant to the user. In one example, the file thatis selected can be the file that has the highest number of times ofbeing accessed. In another example, the file that is selected can be thefile with the most number of times being accessed within a specifiedtime period (e.g., last hour, last 24 hours, last week, last month,etc.).

Furthermore, in some embodiments, systems, methods, and/ornon-transitory computer-readable storage medium of the presentdisclosure can assume that files associated with a most commonlyoccurring particular file type are most relevant to the user. As such,the particular file type can be selected instead of or in addition toselecting a particular file. In some embodiments, the most common filetype that is associated with the files stored in the user's account canbe selected. In one example, if the user uses his/her account with thecontent management system to primarily store images, then the majorityof his/her files stored on the content management system will likely beimages. If so, the image file type can be selected.

In another example, it can be assumed that the most common file type,among a set of files that have been accessed within a specified timeperiod (e.g., within the last hour, within the last 24 hours, within thelast week, etc.), is the most relevant. For example, if there were 100files stored in the user's account and 10 of the files were accessedwithin a specified time period (e.g., within the last 24 hours), thenthe most common file type associated with those 10 files will beselected. If four files were images, three files were text documents,and three files were slideshow documents, then the image file type isthe most common file type and can be selected.

Based on the selected (or identified) file and/or file type, thesystems, methods, and/or non-transitory computer-readable storage mediumcan determine which application(s) to suggest to the user. For example,if the most relevant file(s) and/or file type(s) relate to images, thenphotography editing applications can be recommended to the user. If themost relevant file(s) and/or file type(s) relate to word processingdocuments, then word processing applications can be recommended.

FIG. 3 shows an exemplary interface for application recommendation usingfiles stored in a networked environment such as a content managementsystem. In some embodiments, the interface can be associated withelectronic application marketplace 302. Application marketplace 302 canprovide applications which can be purchased or used for free. In someembodiments, application marketplace 302 can communicate with thecontent management system to present and provide access to variousapplications (i.e., apps) to the user of the content management system.In some embodiments, application marketplace 302 can work with a widevariety of computing devices on various platforms. Accordingly,application marketplace 302 can present and provide applications thatare suitable for the device(s) used by the user.

In some embodiments, the applications provided by applicationmarketplace 302 can be created by application developers. Eachapplication can also be associated with information, such as anapplication category, an application type, file compatibility, etc. Theinformation associated with each application can be provided by theapplication developer/publisher or can be obtained by applicationmarketplace 302 during an analysis and/or review process of a respectiveapplication.

As shown in the example of FIG. 3, application marketplace 302 canpresent and provide access to recommended applications 304. Aspreviously discussed, systems, methods, and/or non-transitorycomputer-readable storage medium of the present disclosure determinewhich applications to recommend. Systems, methods, and/or non-transitorycomputer-readable storage medium can make recommendations for apps basedat least in part on the file(s) and/or file type(s) that have beenselected (or identified) as being most likely to be relevant to theuser. For example, if the selection (or identification) criterion isbased on the last accessed file, then Profile Picture.jpg 208 (see FIG.2) can be selected as likely being most relevant to the user. Thenapplications capable of processing (e.g., opening, editing, utilizing,executing, working with, etc.) Profile Picture.jpg 208 can berecommended.

If Profile Picture.jpg 208 is selected, then applications recommendedusing Profile Picture.jpg 208 (i.e., using information and/or aproperty(ies) associated with Profile Picture.jpg 208) can include appsthat relate to Profile Picture.jpg 208, such as apps that are compatiblewith the JPG image file type, that can edit images, that can add effectsto photographs, etc. For example, recommended apps 304 can includeRemove Red-eye 306, Vintage Effects 308, Photo Crop 310, Photos intoCartoons 312, and/or other apps. Moreover, in some embodiments,application marketplace 302 can also present top (most popular, bestrated, etc.) applications 314 along with recommended apps 304.

FIG. 4 shows another exemplary webpage for storing files in a contentmanagement system. In some embodiments, the exemplary webpage can enablefiles to be stored and shared via the content management system. Forexample, the user of the networked environment can obtain a link fromthe content management system. The link can provide access to a filestored on the content management system with the user's account. Toshare the file, the user can share the link with another entity(ies),such as a friend, a peer, a group, etc. Using the link, the otherentity(ies) can access the file stored at the user's account.

FIG. 4 shows a directory (Shared 402) of items being shared. In Shared402, there can be items that are shared by the user with anotherentity(ies). The items can be associated with information such as name404, type 406, and last accessed date and time 408. The items shared caninclude, for example, subdirectory/subfolder Scheduling 410. In otherwords, Scheduling folder 410 and the contents (e.g., files) included inScheduling folder 410 are stored at the networked environment and sharedwith the other entity(ies). Further, as shown in FIG. 2, the itemsshared can include, for example, files such as meeting notes.txt 412,Profile Picture.jpg 414, Funny Cat.gif 416, and Trailer.mp4 418. Asdiscussed previously, the files can be associated with information suchas name 404, type 406, and when each file was last accessed 408. Meetingnotes.txt 412 is a document type (e.g., TXT type); Profile Picture.jpg414 is an image type (e.g., JPG type); Funny Cat.gif 416 is an imagetype (e.g., GIF type); and Trailer.mp4 418 is a video type (e.g., MP4type).

In one example, meeting notes.txt 412 can be selected. If the selectionis based on last accessed information 408, then meeting notes.txt 412can be selected because it is the file that was most recently accessed.

In another example, a file type can be selected from the plurality offile types (e.g., document TXT type, image JPG/GIF type, video MP4type). In this example, the file type can be selected to be the mostcommon file type. As such, the filed type can be selected to be an imagetype because there are two files having the image type, one file havinga document type, and one file having a video type. Thus, the image typeis the most common among the stored files.

In a further example, a file type can be selected from a subset of theplurality of file types where the subset includes file types that areassociated with files that have been accessed within a specified timeperiod. For this example, the current date can be Dec. 2, 2012 and thespecified time period can be within the past week, such that onlyMeeting notes.txt 412, Profile Picture.jpg 414, and Funny Cat.gif 416are files that have been accessed within the specified time period. Assuch, the subset of file types includes one document instance and twoimage instances. Thus, the image file type can be the selected filetype.

In some embodiments, a combination of a file(s) and a file type(s) canbe selected. This can increase the number of applications to berecommended and can increase the possibility that a recommendedapplication will be relevant to the user. Assuming, for example, thatmeeting notes.txt 412 and the image file type have been selected, thenapplications can be recommended for meeting notes.txt 412 and for theimage file type, as shown in FIG. 5.

FIG. 5 shows another exemplary interface for application recommendationusing files stored in a content management system. The exemplaryinterface can be associated with application marketplace 502.Application marketplace 502 can present and provide access toapplications. In particular, application marketplace 502 can present andprovide access to applications that have been recommended based at leastin part on stored files (i.e., recommended based at least in part oninformation about the stored files).

Assuming that meeting notes.txt 412 and the image file type (see FIG. 4)have been selected, applications can be recommended based on theselection of meeting notes.txt 412 and the image file type. Accordingly,recommended apps 504 can include, for example, image apps 506 anddocument apps 508, which are related to meeting notes.txt 412 and theimage file type, respectively.

In some embodiments, recommended apps 504 can include apps that areconfigured to process (e.g., open, view, edit, utilize, work with, etc.)meeting notes.txt 412 and the stored files that are associated with theimage file type (e.g., Profile Picture.jpg 414 and Funny Cat.gif 416 inFIG. 4). As shown in FIG. 5, recommended image apps 506 can include, forexample, Remove Red-eye 510, Vintage Effects 512, Photo Crop 514, andPhotos into Cartoons 516. In some embodiments, recommended image apps506 must be able to process image types including the JPG type as wellas the GIF type because Profile Picture.jpg 414 is of the JPG type andFunny Cat.gif 416 is of the GIF type. Moreover, recommended documentapps 508 can include, for example, Mobile Word Processing 518, CoolFonts 520, Citation Checker 522, and Spell Checker 524.

According to an alternate embodiment, the recommended apps 504 presentedcan be determined by comparing a profile of the files stored in theuser's account in the content management system, with a database of appsthat were most commonly selected by other users having similar storedfile profiles. For example, users having stored files relating tocertain text and mp4 types/names/sizes, etc. may have commonly selectedan application relating to a particular game, etc.

FIG. 6 shows an exemplary webpage for providing access to recommendedapplications using files stored in a content management system. As shownin FIG. 6, the webpage can present and provide recommended applications.In some embodiments, when the user interacts with (e.g., selects, clickson, etc.) a file stored in the content management system, the file canbe selected/identified (e.g., as being likely to be most relevant to theuser). Then applications can be recommended for the file usinginformation associated with the selected file (e.g., file type, content,etc.). Access to the recommended apps can also be provided.

For example, as shown in FIG. 6, the user can click on a stored file,such as Profile Picture.jpg 602. In this example, when the user clickson Profile Picture.jpg file 602, Profile Picture.jpg 602 can be selectedas being most relevant to the user and a preview for the file can berendered and displayed. In some embodiments, Preview 604 can be asmaller and/or lower resolution rendering of Profile Picture.jpg file602. As shown in FIG. 6, there can also be an option to open the fullversion of Profile Picture.jpg 602 via Open button 606. Further, therecan be an input area (e.g., button), that when enabled/triggered, causesapplications recommended based on the selection of Profile Picture.jpg602 (and/or its file type) to be provided. For example, the user can tapon input area 608 to cause window 610 to be displayed. Window 610 canprovide access to applications recommended using Profile Picture.jpg602. In this example, because the selection was of Profile Picture.jpg602, photo related apps such as Remove Red-eye 612 and Vintage Effects614 can be recommended and provided.

In some embodiments, the user can interact with (e.g., select, click on,etc.) the icons provided for recommended apps Remove Red-eye 612 andVintage Effects 614 in order to access them. For example, a download,installation, and/or execution of recommended apps can beinitialized/triggered by a user interaction with the icon for therecommended apps. In another example, the user interaction with the iconfor the recommended apps can cause an application marketplace to bepresented, which can provide access to the recommended apps.

FIG. 7A shows a screenshot of an exemplary device embodiment foraccessing files stored in a content management system. The exemplarycomputing device embodiment can allow the user to access the foldersand/or directories of the content management system in which files(e.g., data) are stored. Using the exemplary computing device, the usercan log into his/her account with the content management system andaccess (e.g., upload, modify, view, etc.) files.

As shown in FIG. 7A, the content management system can provide a rootdirectory/folder, Storage 702. Under root directory/folder Storage 702,there can be files and subdirectories/subfolders. Examples of filesstored in root folder Storage 702 can include meeting notes.txt 704,Profile Picture.jpg 706, Funny Cat.gif 708, and Trailer.mp4 710. Each ofthe files stored can be associated with information, such as a name, afile type, a last accessed time, and/or other information (e.g.,including file content). An example of a subdirectory/subfolder can beScheduling folder 712, which can also store files.

In one example, the user can interact with (e.g., select, click-on, tap,tap and hold, etc.) an input area for accessing meeting notes.txt 704.In some embodiments, the user interaction with respect to (the inputarea for accessing) meeting notes.txt 704 can cause meeting notes.txt704 to be selected/identified. For example, because the user tappedmeeting notes.txt 704, the system can decide that meeting notes.txt 704has a high likelihood of being relevant to the user. As such,applications can be recommended using meeting notes.txt 704 (includingusing information associated with meeting notes.txt 704). In otherwords, applications can be identified based on theirrelatedness/relevance to meeting notes.txt 704 (and/or informationassociated with meeting notes.txt 704).

When the user interacts with (e.g., tap and hold) the input area foraccessing meeting notes.txt 704, the computing device embodiment canpresent options for accessing meeting notes.txt 704. As shown in FIG.7A, the user has the choice of opening 714 meeting notes.txt 704 (e.g.,with an application that is configured as the default application foraccessing meeting notes.txt 704.) or opening the file with anapplication chosen by the user. If the user chooses the button for OpenWith 716, more options for accessing meeting notes.txt 704 can beprovided, as shown in FIG. 7B.

FIG. 7B shows a screenshot of an exemplary device embodiment foraccessing files stored in a content management system. The user haschosen the button for Open With 716 such that more options are providedfor accessing meeting notes.txt 704. FIG. 7B shows applications that arecapable of accessing meeting notes.txt 704 and that are alreadyinstalled on the exemplary computing device embodiment. The applicationsalready on the computing device and already configured for accessingmeeting notes.txt 704 can include, for example, Text Editor app 718,Redline Revisions app 720, and Wireless Printing app 722. The user canchoose to access meeting notes.txt 704 using these applications that arealready on the computing device.

In addition, the computing device can also enable more applications(e.g., that are not yet installed on the device) to be recommended forthe user. The user can choose to find more applications (e.g.applications that are related to and/or capable of processing meetingnotes.txt 704). As discussed above, the computing device can assume thatmeeting notes.txt 704 (and/or its document file type) is most relevantto the user and thus select meeting notes.txt 704 (and/or its documentfile type). Then, the computing device can identify applicationssuitable for meeting notes.txt 704 (and/or its document file type) basedon comparing the information associated with meeting notes.txt 704 andinformation associated with applications in order to find similarity,relatedness, relevancy, and/or compatibility. When the user chooses Findmore applications 724, the recommended applications can be present tothe user, as shown in FIG. 7C.

The screenshot of FIG. 7C shows applications that are not alreadyinstalled on the device and that are recommended for the user to usewith respect to meeting notes.txt 704. The recommended applications caninclude, for example, Mobile Word Processing app 726 and Cool Fonts app728.

In some embodiments, the exemplary computing device embodiment can alsoprovide an input area (e.g., button Browse more applications 730) that,when enabled/triggered by the user, can present and/or provide access tomore recommended applications.

In some embodiments, when the user interacts with (e.g., taps on) arecommended app, a download, installation, and/or execution of therecommended can be initiated. In some embodiments, when the userinteracts with (e.g., taps on) a recommended app, an interface (e.g.,application marketplace) for downloading, installing, and/or executingthe recommended app can be provided to the user such that the user candownload, install, and/or execute the recommended app via the interface.

FIG. 8 shows an exemplary method embodiment for applicationrecommendation using stored files. It should be understood that therecan be additional, fewer, or alternative steps performed in similar oralternative orders, or in parallel, within the scope of the variousembodiments unless otherwise stated. The exemplary method embodiment canbegin with storing a plurality of files in a content management systemat step 802. The plurality of files can be associated with a useraccount of the content management system. For example, the user can havean account with the content management system and the files can beuploaded by the user into his/her account with the content managementsystem. In some cases, one or more files can be associated with the userin that the one or more files can be shared with the user by anotheruser.

At step 804, information associated with a subset of the plurality offiles is analyzed. The subset can be either an equal subset (in whichall files in the plurality are in the subset) or a proper/strict subset(in which the plurality has more files than the subset). In someembodiments, the information can include at least one of a file typeassociated with each file in the subset, a number of times that eachfile in the subset has been accessed, a time at which each file in thesubset was most recently accessed, or content included in each file inthe subset. Accessing a file can include (but is not limited to)uploading, saving, modifying, updating, viewing, previewing, opening,and/or executing the file.

Step 806 can include identifying at least one file from the subset ofthe plurality of files. The identifying of the at least one file can bebased at least in part on the analysis of the information in step 806.At step 808, a set of applications is identified that are compatiblewith the identified at least one file. In some embodiments, a set ofapplications is identified that are compatible with at least oneproperty associated with the identified at least one file. For example,the system can identify one application (e.g., image editing app) thatis compatible with a file type (e.g., image file type) associated with afile (e.g., image file) identified based on the analysis of theinformation in step 806.

FIG. 9 shows an exemplary method embodiment for applicationrecommendation using stored files. Again, it should be understood thatthere can be additional, fewer, or alternative steps performed insimilar or alternative orders, or in parallel, within the scope of thevarious embodiments unless otherwise stated. At step 902, a plurality offiles is stored in a content management system. For example, the contentmanagement system can provide one or more servers communicativelyconnected via a network. The files can be stored using the one or moreservers.

A first file type can be identified that is associated with a majorityof files in the plurality of files, at step 904. For example, if therewere 10 files in the plurality of files, fours files being of an imagefile type, three files being of a spreadsheet document type, and threefiles being of an audio file type, then the first file type would be theimage file type. The system can also identify a second file typeassociated with at least one file that was most recently accessed, atstep 906. For example, the system can identify the file that was lastaccessed (e.g., most recently accessed by the user) and the second filetype would be the file type of the file that was last accessed. Step 908can include identifying a third file type associated with at least onefile that has a largest number of times being accessed. For example, ifa text document file was accessed by the user 10 times while other fileshave been accessed less than 10 times, then the third file type would bea text document file type.

At step 910, the system can select at least one of the first file type,the second file type, or the third file type. In some embodiments, theselection can be based on implemented configuration settings (e.g.,settings implemented by the content management system). Then at step912, the system can identify one or more applications associated withthe at least one selected file type. In some embodiments, the at leastone application can be identified from a plurality of applications in anapplication library. For example, the system can identify one or moreapplications associated with a selected image file type. The one or moreidentified applications can be one or more image editing applicationsincluded in an application marketplace.

In some embodiments, recommending an application for a file can be basedon analyzing the contents of the file. For example, if a text documentfile has a significant number of misspellings, then a spell checkerapplication can be recommended for the text document file. In anotherexample, if slideshow presentation file has a significant number ofreferences to dates, then a calendar application can be recommended. Ina further example, if an image file is analyzed and the image file isdetermined to show a person with red-eyes due to camera flash, then ared-eye reduction/removal application can be recommended.

In some embodiments, a relevancy level (relative to the user) can beassessed for each file (or each file type) stored in the networkedenvironment at the user's account. The relevancy level for each file canindicate a likelihood that the file will be relevant to the user. A filewith a high relevancy level can have a high likelihood of being relevantto the user. In some embodiments, the relevancy level can be a scorecalculated for each file based on the information associated with arespective file.

In some embodiments, a file stored on the networked environment at theuser's account can be a file that is shared with the user by anotheruser. The information associated with the file can include identifyinginformation for a set of applications used by the other user to accessthe file. In some embodiments, determining which applications torecommend to the user can be based on the identifying information forthe set of applications used by the other user.

In some embodiments, advertisements can also be recommended using filesstored in the networked environment (including using information aboutthe files stored in the networked environment). For example, if a videofile is selected/identified as being likely to be most relevant to theuser, then advertisements relating to videos can be recommended to theuser. If the video file is a trailer for a movie, then ads can berecommended for renting the movie, purchasing the movie, and/orpurchasing movie theater tickets for the movie. In another example, ifan audio file associated with a musical artist is selected/identified asbeing probably most relevant to the user, then ads related to themusical artist's music and/or tickets to the artist's concert can berecommended and presented to the user.

FIG. 10A and FIG. 10B show exemplary implementations for a system inaccordance with the present technology. The more appropriate embodimentwill be apparent to those of ordinary skill in the art when practicingthe present technology. Persons of ordinary skill in the art will alsoreadily appreciate that other system embodiments are possible.

FIG. 10A illustrates a conventional system bus computing systemarchitecture 1000 wherein the components of the system are in electricalcommunication with each other using a bus 1005. Exemplary system 1000includes a processing unit (CPU or processor) 1010 and a system bus 1005that couples various system components including the system memory 1015,such as read only memory (ROM) 1020 and random access memory (RAM) 1025,to the processor 1010. The system 1000 can include a cache of high-speedmemory connected directly with, in close proximity to, or integrated aspart of the processor 1010. The system 1000 can copy data from thememory 1015 and/or the storage device 1030 to the cache 1012 for quickaccess by the processor 1010. In this way, the cache can provide aperformance boost that avoids processor 1010 delays while waiting fordata. These and other modules can control or be configured to controlthe processor 1010 to perform various actions. Other system memory 1015may be available for use as well. The memory 1015 can include multipledifferent types of memory with different performance characteristics.The processor 1010 can include any general purpose processor and ahardware module or software module, such as module 1 1032, module 21034, and module 3 1036 stored in storage device 1030, configured tocontrol the processor 1010 as well as a special-purpose processor wheresoftware instructions are incorporated into the actual processor design.The processor 1010 may essentially be a completely self-containedcomputing system, containing multiple cores or processors, a bus, memorycontroller, cache, etc. A multi-core processor may be symmetric orasymmetric.

To enable user interaction with the computing device 1000, an inputdevice 1045 can represent any number of input mechanisms, such as amicrophone for speech, a touch-sensitive screen for gesture or graphicalinput, keyboard, mouse, motion input, speech and so forth. An outputdevice 1035 can also be one or more of a number of output mechanismsknown to those of skill in the art. In some instances, multimodalsystems can enable a user to provide multiple types of input tocommunicate with the computing device 1000. The communications interface1040 can generally govern and manage the user input and system output.There is no restriction on operating on any particular hardwarearrangement and therefore the basic features here may easily besubstituted for improved hardware or firmware arrangements as they aredeveloped.

Storage device 1030 is a non-volatile memory and can be a hard disk orother types of computer readable media which can store data that areaccessible by a computer, such as magnetic cassettes, flash memorycards, solid state memory devices, digital versatile disks, cartridges,random access memories (RAMs) 1025, read only memory (ROM) 1020, andhybrids thereof.

The storage device 1030 can include software modules 1032, 1034, 1036for controlling the processor 1010. Other hardware or software modulesare contemplated. The storage device 1030 can be connected to the systembus 1005. In one aspect, a hardware module that performs a particularfunction can include the software component stored in acomputer-readable medium in connection with the necessary hardwarecomponents, such as the processor 1010, bus 1005, display 1035, and soforth, to carry out the function.

FIG. 10B illustrates a computer system 1050 having a chipsetarchitecture that can be used in executing the described method andgenerating and displaying a graphical user interface (GUI). Computersystem 1050 is an example of computer hardware, software, and firmwarethat can be used to implement the disclosed technology. System 1050 caninclude a processor 1055, representative of any number of physicallyand/or logically distinct resources capable of executing software,firmware, and hardware configured to perform identified computations.Processor 1055 can communicate with a chipset 1060 that can controlinput to and output from processor 1055. In this example, chipset 1060outputs information to output 1065, such as a display, and can read andwrite information to storage device 1070, which can include magneticmedia, and solid state media, for example. Chipset 1060 can also readdata from and write data to RAM 1075. A bridge 1080 for interfacing witha variety of user interface components 1085 can be provided forinterfacing with chipset 1060. Such user interface components 1085 caninclude a keyboard, a microphone, touch detection and processingcircuitry, a pointing device, such as a mouse, and so on. In general,inputs to system 1050 can come from any of a variety of sources, machinegenerated and/or human generated.

Chipset 1060 can also interface with one or more communicationinterfaces 1090 that can have different physical interfaces. Suchcommunication interfaces can include interfaces for wired and wirelesslocal area networks, for broadband wireless networks, as well aspersonal area networks. Some applications of the methods for generating,displaying, and using the GUI disclosed herein can include receivingordered datasets over the physical interface or be generated by themachine itself by processor 1055 analyzing data stored in storage 1070or 1075. Further, the machine can receive inputs from a user via userinterface components 1085 and execute appropriate functions, such asbrowsing functions by interpreting these inputs using processor 1055.

It can be appreciated that exemplary systems 1000 and 1050 can have morethan one processor 1010 or be part of a group or cluster of computingdevices networked together to provide greater processing capability.

For clarity of explanation, in some instances the present technology maybe presented as including individual functional blocks includingfunctional blocks comprising devices, device components, steps orroutines in a method embodied in software, or combinations of hardwareand software.

In some embodiments the computer-readable storage devices, mediums, andmemories can include a cable or wireless signal containing a bit streamand the like. However, when mentioned, non-transitory computer-readablestorage media expressly exclude media such as energy, carrier signals,electromagnetic waves, and signals per se.

Methods according to the above-described examples can be implementedusing computer-executable instructions that are stored or otherwiseavailable from computer readable media. Such instructions can comprise,for example, instructions and data which cause or otherwise configure ageneral purpose computer, special purpose computer, or special purposeprocessing device to perform a certain function or group of functions.Portions of computer resources used can be accessible over a network.The computer executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, firmware, orsource code. Examples of computer-readable media that may be used tostore instructions, information used, and/or information created duringmethods according to described examples include magnetic or opticaldisks, flash memory, USB devices provided with non-volatile memory,networked storage devices, and so on.

Devices implementing methods according to these disclosures can comprisehardware, firmware and/or software, and can take any of a variety ofform factors. Typical examples of such form factors include laptops,smart phones, small form factor personal computers, personal digitalassistants, and so on. Functionality described herein also can beembodied in peripherals or add-in cards. Such functionality can also beimplemented on a circuit board among different chips or differentprocesses executing in a single device, by way of further example.

The instructions, media for conveying such instructions, computingresources for executing them, and other structures for supporting suchcomputing resources are means for providing the functions described inthese disclosures.

Although a variety of examples and other information was used to explainaspects within the scope of the appended claims, no limitation of theclaims should be implied based on particular features or arrangements insuch examples, as one of ordinary skill would be able to use theseexamples to derive a wide variety of implementations. Further andalthough some subject matter may have been described in languagespecific to examples of structural features and/or method steps, it isto be understood that the subject matter defined in the appended claimsis not necessarily limited to these described features or acts. Forexample, such functionality can be distributed differently or performedin components other than those identified herein. Rather, the describedfeatures and steps are disclosed as examples of components of systemsand methods within the scope of the appended claims.

What is claimed is:
 1. A computer-implemented method comprising:receiving a request to upload a plurality of files to a user account ofa network content management system where the system can be synced withany computing device that is logged into the user's account; storing theplurality of files in the system, the plurality of files being stored atthe user account of the system, wherein one or more modifications orupdates to the plurality of files are synchronized at the user accountof the system where a user can manipulate content directly in a localfolder, while a background process monitors the local folder for changesand synchronizes those changes to the system and provides notificationsof synchronization operations, and indications of content statuses;analyzing at least a portion of information associated with at least asubset of the plurality of files, the information including a file typeassociated with each file in the subset, a number of times that eachfile in the subset has been accessed, a time at which each file in thesubset was most recently accessed, usage history data related to use ofthe subset of the plurality of files by the user account, and contentincluded in each file in the subset, wherein the subset is either anequal subset or a strict subset, and wherein the subset includes filesthat have been accessed by the user account; determining, based on theanalysis, a first file type represented by a majority number of thefiles associated with the user account; and recommending at least oneapplication from an application marketplace by causing the rendering ofan image for the at least one application based on the file typerepresented by the majority number of files associated with the useraccount, the at least one application compatible with the first filetype.
 2. The computer-implemented method of claim 1, wherein theinformation includes a file type associated with each file in theplurality of files, a number of times that each file in the plurality offiles has been accessed, a time at which each file in the plurality offiles was most recently accessed, usage history data related to use ofthe plurality of files by the user account, and content included in eachfile in the plurality of files.
 3. The computer-implemented method ofclaim 2, wherein the information includes a relevancy level for eachfile in the plurality of files.
 4. The computer-implemented method ofclaim 1, wherein the plurality of files includes files that have beenaccessed by the user account.
 5. The computer-implemented method ofclaim 1, wherein the plurality of files includes files that have beenaccessed by the user within a specified time period.
 6. Thecomputer-implemented method of claim 1, wherein the at least oneapplication is capable of modifying at least a portion of contentincluded in a file with the file type.
 7. The computer-implementedmethod of claim 1, wherein at least one file in the plurality of filesis shared with the user by at least one other user, wherein theinformation includes identification of a set of applications used by theat least one other user to access the at least one file, and whereinrecommending the at least one application is based at least in part onthe identification of the set of applications used by the at least oneother user.
 8. A non-transitory computer-readable medium storingcomputer-executable instructions for causing a processor to: receive arequest to upload a plurality of files to a user account of a networkcontent management system where the system can be synced with anycomputing device that is logged into the user's account; store theplurality of files in the system, the plurality of files being stored atthe user account of the system, wherein one or more modifications orupdates to the plurality of files are synchronized at the user accountof the system where a user can manipulate content directly in a localfolder, while a background process monitors the local folder for changesand synchronizes those changes to the system and provides notificationsof synchronization operations, and indications of content statuses;analyze at least a portion of information associated with at least asubset of the plurality of files, the information including a file typeassociated with each file in the subset, a number of times that eachfile in the subset has been accessed, a time at which each file in thesubset was most recently accessed, usage history data related to use ofthe subset of the plurality of files by the user account, and contentincluded in each file in the subset, wherein the subset is either anequal subset or a strict subset, and wherein the subset includes filesthat have been accessed by the user account; determine, based on theanalysis, a first file type represented by a majority number of thefiles associated with the user account; and recommend at least oneapplication from an application marketplace by causing the rendering ofan image for the at least one application based on the file typerepresented by the majority number of files associated with the useraccount, the at least one application compatible with the first filetype.
 9. The non-transitory computer-readable medium of claim 8, whereinthe plurality of files includes files that have been accessed by theuser account.
 10. The non-transitory computer-readable medium of claim8, wherein the plurality of files includes files that have been accessedby the user within a specified time period.
 11. The non-transitorycomputer-readable medium of claim 8, wherein the at least oneapplication is capable of modifying at least a portion of contentincluded in a file with the file type.
 12. The non-transitorycomputer-readable medium of claim 8, wherein at least one file in theplurality of files is shared with the user by at least one other user,wherein the information includes identification of a set of applicationsused by the at least one other user to access the at least one file, andwherein recommending the at least one application is based at least inpart on the identification of the set of applications used by the atleast one other user.
 13. The non-transitory computer-readable medium ofclaim 8, wherein the information includes a relevancy level for eachfile in the plurality of files.
 14. A system comprising: a processor;and a non-transitory computer-readable medium storingcomputer-executable instructions for causing the processor to: receive arequest to upload a plurality of files to a user account of a networkcontent management system where the system can be synced with anycomputing device that is logged into the user's account; store theplurality of files in the system, the plurality of files being stored atthe user account of the system, wherein one or more modifications orupdates to the plurality of files are synchronized at the user accountof the system where a user can manipulate content directly in a localfolder, while a background process monitors the local folder for changesand synchronizes those changes to the system and provides notificationsof synchronization operations, and indications of content statuses;analyze at least a portion of information associated with at least asubset of the plurality of files, the information including a file typeassociated with each file in the subset, a number of times that eachfile in the subset has been accessed, a time at which each file in thesubset was most recently accessed, usage history data related to use ofthe subset of the plurality of files by the user account, and contentincluded in each file in the subset, wherein the subset is either anequal subset or a strict subset, and wherein the subset includes filesthat have been accessed by the user account; determine, based on theanalysis, a first file type represented by a majority number of thefiles associated with the user account; and recommend at least oneapplication from an application marketplace by causing the rendering ofan image for the at least one application based on the file typerepresented by the majority number of files associated with the useraccount, the at least one application compatible with the first filetype.
 15. The system method of claim 14, wherein the subset includesfiles that have been accessed by the user account.
 16. The system methodof claim 14, wherein the subset includes files that have been accessedby the user within a specified time period.
 17. The system method ofclaim 14, further storing instructions for causing a processor to:display the at least one application in a user interface in response toa user interaction with respect to a file of the first file type. 18.The system method of claim 14, wherein the at least one application iscapable of modifying at least a portion of content included in a filewith the first file type.
 19. The system method of claim 14, wherein atleast one file in the subset is shared with the user by at least oneother user, wherein the information includes identification of a set ofapplications used by the at least one other user to access the at leastone file, and wherein recommending the at least one application is basedat least in part on the identification of the set of applications usedby the at least one other user.